<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <!-- 
        es6新特性
        1、变量声明let、const
        2、模板字符串
        3、箭头函数
        4、函数参数默认值
        5、扩展运算符
        6、二进制和八进制字面量（OO/Oo  0b/0B）
        7、对象和数组解构
        8、super
        9、遍历：for...of和for...in
        10、class(只是原型链上的语法糖的表现形式
        11、字符串扩展方法（includes、startsWith、endsWith）
        12、对象属性增强（同名属性可以直接省略value，直接写key）
        13、Object.assign(target1,target2,target3...)后面的属性向前面的属性合并，可以复制/克隆对象
        14、Object.is(value1,value2),比较两个值是否相等
        15、Proxy(object,handler),代理一个对象的所有操作
        16、Promise
        17、Set、Map、Symbol
     -->
     <script>
         class father {
            constructor(name) {
                this.name = name;
            }
         }
         class son extends father{
             constructor(name,age) {
                super(name);
                this.age = age;
             }
         }
         var s = new son('zs',18);
         console.log(s);
         console.log(s.__proto__ === son.prototype);

         console.log(Object.is(NaN,NaN));//true
         console.log(0 === -0);//true
         console.log(Object.is(0,-0));//false
         console.log(Object.is(0,+0));//true

         window.name = 'ByteDance';
         function A() {
             this.name = 123;
         }

         A.prototype.getA = function() {
             console.log(this);
             return this.name + 1;
         }
         let a = new A()
         let funA = a.getA;
         console.log(funA());

     </script>
</body>
</html>